ワークフローのフォーム送信をアクティビティ通知してみた #Slack
Slackワークフローでフォームから送信したデータをリスト機能から活用できる「アクティビティ通知」にて通知するプロセスをようやく動作させることができました。ワークフローからの送信を即察知するには大きな手間が掛かると分かっていたため、リスト機能のアクティビティ通知には可能性を見出していました。
動作しない原因が解らないためサポートに問い合わせを入れた結果、日本語ラベルの表示が一部間違っていたことが判明してSlack側のfixが行われましたが、それ以外にもそもそもの使い方の問題という一面もありました。
今回、ステップの仕様に沿ってワークフローを分けて特定ステップの組み合わせにすることで動作させることができました。実例を通しての解説記事となります。
ワークフロー全体図
今回のワークフローは2つを組み合わせることになります。
- フォームからデータを送信してリストに追加して更新するワークフロー
- リスト更新を元にアクティビティ通知を動作するワークフロー
1つ目のワークフロー実行後、リストの更新をフックに2つ目のワークフローが自動実行します。この組み合わせはワークフローのリスト機能に関する仕様の都合があります。
フォームからデータを送信してリストに追加するワークフロー
例に用いたデータ送信用ワークフロー全体図は以下の通り。
フォーム用ステップを設定すると以下のメニューがサジェストされます。
ここでリストを選ぶことでフォームのデータを漏れなく追加できるリストが自動生成できます。
アップデート用ステップにて実際に通知する対象を設定します。データは変わっていないため、アップデートは同じデータでの上書きとなります。
全フィールドに対してアップデートも出来ますが、1回の更新でフィールド毎に通知が行われます。4フィールドの場合は4回通知ということです。特に通知したいフィールドに絞りましょう。
リスト更新を元にアクティビティ通知を動作するワークフロー
ステップ構成を最小限にした場合、どのようなリストを使っても共通になるでしょう。
ワークフロー動作後
実際の通知は以下のようになります。
あとがき
ややこしいワークフローとなりましたが、アクティビティ通知に必要なリストアイテムのフィールドID取得がリストアイテム更新を起点にしたワークフローでのみ取得可能な仕様に沿うためです。URLを起点にしたフォーム用ワークフローでは処理が不可能なため、フォームを元に作成したリストアイテムを同じデータで上書き更新して2つ目のワークフローを起動させています。
フォーム送信が行われたことをアクティビティ通知経由にて察知できるため、送信の確認漏れ対策になります。送信が行われた時を的確に把握したい場合にはおすすめです。